import { query } from '../../config/db.js';
import logger from '../../config/logger.js';

async function seedPermissions() {
  try {
    logger.info('开始播种权限数据...');

    // 先清空权限表
    // 禁用外键约束
    await query('SET FOREIGN_KEY_CHECKS = 0');
    await query('TRUNCATE TABLE permissions');
    // 启用外键约束
    await query('SET FOREIGN_KEY_CHECKS = 1');
    // MySQL不支持RESTART IDENTITY，需要重置自增序列
    await query('ALTER TABLE permissions AUTO_INCREMENT = 1');
    logger.info('权限表已清空');

    // 定义权限数据
    const permissions = [
      ['read_users', '可以读取用户信息'],
      ['create_users', '可以创建新用户'],
      ['update_users', '可以更新用户信息'],
      ['delete_users', '可以删除用户'],
      ['read_permissions', '可以读取权限信息'],
      ['manage_permissions', '可以管理权限'],
      ['read_students', '可以读取学生信息'],
      ['create_students', '可以创建新学生'],
      ['update_students', '可以更新学生信息'],
      ['delete_students', '可以删除学生']
    ];

    // 插入权限数据
    for (const [name, description] of permissions) {
      await query(
        'INSERT INTO permissions (name, description) VALUES (?, ?)',
        [name, description]
      );
    }
    logger.info('权限数据已插入');

    logger.info('权限数据播种完成');
  } catch (error) {
    logger.error('权限数据播种失败:', error);
    throw error;
  }
}

export default seedPermissions;